package com.wfy.modules.openInterface.service;

import com.google.common.collect.Maps;
import com.wfy.common.config.Global;
import com.wfy.common.entity.Result;
import com.wfy.common.entity.ResultGenerate;
import com.wfy.common.service.CrudService;
import com.wfy.common.service.ServiceException;
import com.wfy.common.util.PageData;
import com.wfy.modules.openInterface.dao.SensorInfoDao;
import com.wfy.modules.openInterface.entity.SensorInfo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: wangxindong
 * Date: 2017/9/27
 * Time: 20:20
 */
@Service(value = "sensorInfoService")
@Transactional(readOnly = true)
public class SensorInfoService extends CrudService<SensorInfoDao, SensorInfo> {

    // ================================================================
    // Constants
    // ================================================================

    // ================================================================
    // Fields
    // ================================================================

    @Resource
    private DeviceInfoService deviceInfoService;


    // ================================================================
    // Constructors
    // ================================================================

    // ================================================================
    // Methods from/for super Interfaces or SuperClass
    // ================================================================

    // ================================================================
    // Public or Protected Methods
    // ================================================================

    /**
     * 修改传感器信息
     *
     * @param pd
     * @return
     * @throws Exception
     */
    @Transactional(readOnly = false)
    public Result updateSensorInfo(PageData pd) throws ServiceException {
        String code = pd.getString("code");
        String monitorPoint = pd.getString("monitorPoint");

        SensorInfo sensorInfo = new SensorInfo();
        sensorInfo.setCode(code);
        sensorInfo = dao.getSensorInfo(sensorInfo);
        if (null == sensorInfo) {
            return ResultGenerate.getResult(Global.NO_SENSOR_MSG, Global.NO_SENSOR_CODE);
        }
        sensorInfo.setMonitorPoint(monitorPoint);
        dao.update(sensorInfo);
        Map<String, String> result = Maps.newHashMap();
        result.put("sensorCode", sensorInfo.getRemarks());
        result.put("monitorPoint", sensorInfo.getMonitorPoint());
        return ResultGenerate.getSuccessResult(result);
    }


    // ================================================================
    // Getter & Setter
    // ================================================================

    // ================================================================
    // Private Methods
    // ================================================================


    // ================================================================
    // Inner or Anonymous Class
    // ================================================================

    // ================================================================
    // Test Methods
    // ================================================================

}
